﻿Imports System.Data
Imports FirebirdSql.Data
Imports FirebirdSql.Data.FirebirdClient

Public Class _encaminhamento


    Inherits _DataBase
    '  Public trab As New _Trabalhador
    '  Public vag As New _VagaTrabalho
    '  Private emp As New _empregador
    '  Private enc As New _encaminhamento


    Private _idEncaminhamento As Integer
    Public Property idEncaminhamento() As Integer
        Get
            Return _idEncaminhamento
        End Get
        Set(ByVal value As Integer)
            _idEncaminhamento = value
        End Set
    End Property
    Private _idTrabalhador As Integer
    Public Property idTrabalhador() As Integer
        Get
            Return _idTrabalhador
        End Get
        Set(ByVal value As Integer)
            _idTrabalhador = value
        End Set
    End Property
    Private _idVaga As Integer
    Property idVaga() As Integer
        Get
            Return _idVaga
        End Get
        Set(ByVal value As Integer)
            _idVaga = value
        End Set
    End Property
    Private _idMtvoBaixa As Integer
    Public Property idMtvoBaixa() As Integer
        Get
            Return _idMtvoBaixa
        End Get
        Set(ByVal value As Integer)
            _idMtvoBaixa = value
        End Set
    End Property
    Private _dtEncaminhamento As Date
    Public Property dtEncaminhamento() As Date
        Get
            Return _dtEncaminhamento
        End Get
        Set(ByVal value As Date)
            _dtEncaminhamento = value
        End Set
    End Property
    Private _dsObservacao As String
    Public Property dsObservacao() As String
        Get
            Return _dsObservacao
        End Get
        Set(ByVal value As String)
            _dsObservacao = value
        End Set
    End Property
    Private _stAtivo As Integer
    Public Property stAtivo() As Integer
        Get
            Return _stAtivo
        End Get
        Set(ByVal value As Integer)
            _stAtivo = value
        End Set
    End Property
    Private _dtBaixa As Date
    Public Property dtBaixa() As Date
        Get
            Return _dtBaixa
        End Get
        Set(ByVal value As Date)
            _dtBaixa = value
        End Set
    End Property
    Private _dtIinicial As Date
    Public Property dtInicial() As Date
        Get
            Return _dtIinicial
        End Get
        Set(ByVal value As Date)
            _dtIinicial = value
        End Set
    End Property
    Private _dtFinal As Date
    Private Property dtFinal() As Date
        Get
            Return _dtFinal
        End Get
        Set(ByVal value As Date)
            _dtFinal = value
        End Set
    End Property
    Private _arrayRetorno As Hashtable
    Public Property ArrayRetorno() As Hashtable
        Get
            Return _arrayRetorno
        End Get
        Set(ByVal value As Hashtable)
            _arrayRetorno = value
        End Set
    End Property


    Public Function insereEncaminhamento() As Integer

        conectaDb()
        insereEncaminhamento = execSQL(montaParametrosSQL("SP_ENCAMINHAMENTO_CMD", "INSERIR"))
        desconectaDb()

    End Function

    Public Function consultaEncaminhamento() As DataSet
        conectaDb()
        consultaEncaminhamento = retornaDataSet(montaParametrosSQL("SP_ENCAMINHAMENTO_CONSULTA", "RESUMIDO"))
        desconectaDb()
    End Function

    Public Sub consultaEncaminhamentoPorId(ByVal pIdEncaminhamento As Integer)
        idEncaminhamento = pIdEncaminhamento
        'trab = New _Trabalhador
        ArrayRetorno = New Hashtable

        conectaDb()
        dr = retornaDataReader(montaParametrosSQL("SP_ENCAMINHAMENTO_CONSULTA", "ID"))
        With dr
            If .Read Then
                ArrayRetorno.Add("dtEncaminhamento", .Item("O_DT_ENCAMINHAMENTO"))
                ArrayRetorno.Add("dsObservacao", .Item("O_DS_OBSERVACAO"))
                ArrayRetorno.Add("nuCPF", .Item("O_NU_CPF"))
                ArrayRetorno.Add("nmCompleto", .Item("O_NM_COMPLETO"))
                ArrayRetorno.Add("sxSexo", .Item("O_SX_SEXO"))
                ArrayRetorno.Add("ctCNH", .Item("O_CT_CNH"))
                ArrayRetorno.Add("dtNascimento", .Item("O_DT_NASC"))
                ArrayRetorno.Add("idVagaDeTrabalho", .Item("O_ID_VAGA"))
                ArrayRetorno.Add("qtVagas", .Item("O_QT_VAGAS"))
                ArrayRetorno.Add("dtCadastro", .Item("O_DT_CADASTRO"))
                ArrayRetorno.Add("nmEmpresa", .Item("O_NM_EMPRESA"))
                ArrayRetorno.Add("dsCargo", .Item("O_DS_CARGOFUNCAO"))
                ArrayRetorno.Add("dsAtivBenReq", .Item("O_DS_ATIVBENREQ"))
                desconectaDb()
            Else
                desconectaDb()
            End If
        End With

    End Sub
    Public Sub geraXMLEncaminhamento(ByVal pidEncaminhamento As Integer)
        idEncaminhamento = pidEncaminhamento

        'My.Computer.FileSystem.DeleteFile("C:\SATE\TEMP\FEncamPVaga")

        Dim s() As String = {"DT_ENCAMINHAMENTO"}  '<-- Campos a serem filtrados
        Dim f As New FiltroDateTimeXml("C:\SATE\TEMP\FEncamPVaga", s)
        retornaDataSet(montaParametrosSQL("SP_ENCAMINHAMENTO_CONSULTA", "IMPRESSAO1")).WriteXml(f, XmlWriteMode.WriteSchema)
        f.Close() '<-- Libera referência ao arquivo
    End Sub

    Public Function consultaEncaminhamentoPorPeriodo(ByVal pDtInicial As Date, ByVal pDtFinal As Date) As DataSet

        dtInicial = pDtInicial
        dtFinal = pDtFinal
        conectaDb()
        consultaEncaminhamentoPorPeriodo = retornaDataSet(montaParametrosSQL("SP_ENCAMINHAMENTO_CONSULTA", "DATA"))
        desconectaDb()


    End Function

    Private Function montaParametrosSQL(ByVal nomeSP As String, ByVal pModo As String) As FbCommand
        With cmd
            .CommandText = nomeSP
            With .Parameters
                .Clear()
                .Add("MODO", FbDbType.VarChar, 10).Value = pModo
                .Add("I_ID_ENCAMINHAMENTO", FbDbType.Integer).Value = idEncaminhamento
                .Add("I_ID_TRABALHADOR", FbDbType.Integer).Value = idTrabalhador
                .Add("I_DT_ENCAMINHAMENTO", FbDbType.Date).Value = dtEncaminhamento
                .Add("I_DS_OBSERVACAO", FbDbType.VarChar, 100).Value = dsObservacao
                .Add("I_ST_ATIVO", FbDbType.Integer).Value = stAtivo
                .Add("I_DT_BAIXA", FbDbType.Date).Value = dtBaixa
                .Add("I_ID_MTVOBAIXA", FbDbType.Integer).Value = idMtvoBaixa
                .Add("I_ID_VAGA", FbDbType.Integer).Value = idVaga
                .Add("I_DT_INICIAL", FbDbType.TimeStamp).Value = dtInicial
                .Add("I_DT_INICIAL", FbDbType.TimeStamp).Value = dtFinal
            End With
        End With
        Return cmd

    End Function
End Class
